package com.hjb.service.domain.product;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class ProductExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andProductIdIsNull() {
            addCriterion("product_id is null");
            return (Criteria) this;
        }

        public Criteria andProductIdIsNotNull() {
            addCriterion("product_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductIdEqualTo(Integer value) {
            addCriterion("product_id =", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotEqualTo(Integer value) {
            addCriterion("product_id <>", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThan(Integer value) {
            addCriterion("product_id >", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_id >=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThan(Integer value) {
            addCriterion("product_id <", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_id <=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdIn(List<Integer> values) {
            addCriterion("product_id in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotIn(List<Integer> values) {
            addCriterion("product_id not in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdBetween(Integer value1, Integer value2) {
            addCriterion("product_id between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_id not between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andSortIsNull() {
            addCriterion("sort is null");
            return (Criteria) this;
        }

        public Criteria andSortIsNotNull() {
            addCriterion("sort is not null");
            return (Criteria) this;
        }

        public Criteria andSortEqualTo(Integer value) {
            addCriterion("sort =", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotEqualTo(Integer value) {
            addCriterion("sort <>", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThan(Integer value) {
            addCriterion("sort >", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
            addCriterion("sort >=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThan(Integer value) {
            addCriterion("sort <", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThanOrEqualTo(Integer value) {
            addCriterion("sort <=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortIn(List<Integer> values) {
            addCriterion("sort in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotIn(List<Integer> values) {
            addCriterion("sort not in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortBetween(Integer value1, Integer value2) {
            addCriterion("sort between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotBetween(Integer value1, Integer value2) {
            addCriterion("sort not between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProviderIsNull() {
            addCriterion("provider is null");
            return (Criteria) this;
        }

        public Criteria andProviderIsNotNull() {
            addCriterion("provider is not null");
            return (Criteria) this;
        }

        public Criteria andProviderEqualTo(String value) {
            addCriterion("provider =", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderNotEqualTo(String value) {
            addCriterion("provider <>", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderGreaterThan(String value) {
            addCriterion("provider >", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderGreaterThanOrEqualTo(String value) {
            addCriterion("provider >=", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderLessThan(String value) {
            addCriterion("provider <", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderLessThanOrEqualTo(String value) {
            addCriterion("provider <=", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderLike(String value) {
            addCriterion("provider like", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderNotLike(String value) {
            addCriterion("provider not like", value, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderIn(List<String> values) {
            addCriterion("provider in", values, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderNotIn(List<String> values) {
            addCriterion("provider not in", values, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderBetween(String value1, String value2) {
            addCriterion("provider between", value1, value2, "provider");
            return (Criteria) this;
        }

        public Criteria andProviderNotBetween(String value1, String value2) {
            addCriterion("provider not between", value1, value2, "provider");
            return (Criteria) this;
        }

        public Criteria andInfoIsNull() {
            addCriterion("info is null");
            return (Criteria) this;
        }

        public Criteria andInfoIsNotNull() {
            addCriterion("info is not null");
            return (Criteria) this;
        }

        public Criteria andInfoEqualTo(String value) {
            addCriterion("info =", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoNotEqualTo(String value) {
            addCriterion("info <>", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoGreaterThan(String value) {
            addCriterion("info >", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoGreaterThanOrEqualTo(String value) {
            addCriterion("info >=", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoLessThan(String value) {
            addCriterion("info <", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoLessThanOrEqualTo(String value) {
            addCriterion("info <=", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoLike(String value) {
            addCriterion("info like", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoNotLike(String value) {
            addCriterion("info not like", value, "info");
            return (Criteria) this;
        }

        public Criteria andInfoIn(List<String> values) {
            addCriterion("info in", values, "info");
            return (Criteria) this;
        }

        public Criteria andInfoNotIn(List<String> values) {
            addCriterion("info not in", values, "info");
            return (Criteria) this;
        }

        public Criteria andInfoBetween(String value1, String value2) {
            addCriterion("info between", value1, value2, "info");
            return (Criteria) this;
        }

        public Criteria andInfoNotBetween(String value1, String value2) {
            addCriterion("info not between", value1, value2, "info");
            return (Criteria) this;
        }

        public Criteria andTitleIsNull() {
            addCriterion("title is null");
            return (Criteria) this;
        }

        public Criteria andTitleIsNotNull() {
            addCriterion("title is not null");
            return (Criteria) this;
        }

        public Criteria andTitleEqualTo(String value) {
            addCriterion("title =", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotEqualTo(String value) {
            addCriterion("title <>", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThan(String value) {
            addCriterion("title >", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThanOrEqualTo(String value) {
            addCriterion("title >=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThan(String value) {
            addCriterion("title <", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThanOrEqualTo(String value) {
            addCriterion("title <=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLike(String value) {
            addCriterion("title like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotLike(String value) {
            addCriterion("title not like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleIn(List<String> values) {
            addCriterion("title in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotIn(List<String> values) {
            addCriterion("title not in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleBetween(String value1, String value2) {
            addCriterion("title between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotBetween(String value1, String value2) {
            addCriterion("title not between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNull() {
            addCriterion("creator is null");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNotNull() {
            addCriterion("creator is not null");
            return (Criteria) this;
        }

        public Criteria andCreatorEqualTo(Integer value) {
            addCriterion("creator =", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotEqualTo(Integer value) {
            addCriterion("creator <>", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThan(Integer value) {
            addCriterion("creator >", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThanOrEqualTo(Integer value) {
            addCriterion("creator >=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThan(Integer value) {
            addCriterion("creator <", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThanOrEqualTo(Integer value) {
            addCriterion("creator <=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorIn(List<Integer> values) {
            addCriterion("creator in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotIn(List<Integer> values) {
            addCriterion("creator not in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorBetween(Integer value1, Integer value2) {
            addCriterion("creator between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotBetween(Integer value1, Integer value2) {
            addCriterion("creator not between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(String value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(String value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(String value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(String value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(String value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(String value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLike(String value) {
            addCriterion("create_time like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotLike(String value) {
            addCriterion("create_time not like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<String> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<String> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(String value1, String value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(String value1, String value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdatorIsNull() {
            addCriterion("updator is null");
            return (Criteria) this;
        }

        public Criteria andUpdatorIsNotNull() {
            addCriterion("updator is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatorEqualTo(Integer value) {
            addCriterion("updator =", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotEqualTo(Integer value) {
            addCriterion("updator <>", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorGreaterThan(Integer value) {
            addCriterion("updator >", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorGreaterThanOrEqualTo(Integer value) {
            addCriterion("updator >=", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorLessThan(Integer value) {
            addCriterion("updator <", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorLessThanOrEqualTo(Integer value) {
            addCriterion("updator <=", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorIn(List<Integer> values) {
            addCriterion("updator in", values, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotIn(List<Integer> values) {
            addCriterion("updator not in", values, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorBetween(Integer value1, Integer value2) {
            addCriterion("updator between", value1, value2, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotBetween(Integer value1, Integer value2) {
            addCriterion("updator not between", value1, value2, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(String value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(String value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(String value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(String value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(String value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(String value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLike(String value) {
            addCriterion("update_time like", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotLike(String value) {
            addCriterion("update_time not like", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<String> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<String> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(String value1, String value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(String value1, String value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIsNull() {
            addCriterion("total_amount is null");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIsNotNull() {
            addCriterion("total_amount is not null");
            return (Criteria) this;
        }

        public Criteria andTotalAmountEqualTo(BigDecimal value) {
            addCriterion("total_amount =", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountNotEqualTo(BigDecimal value) {
            addCriterion("total_amount <>", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountGreaterThan(BigDecimal value) {
            addCriterion("total_amount >", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("total_amount >=", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountLessThan(BigDecimal value) {
            addCriterion("total_amount <", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("total_amount <=", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIn(List<BigDecimal> values) {
            addCriterion("total_amount in", values, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountNotIn(List<BigDecimal> values) {
            addCriterion("total_amount not in", values, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_amount between", value1, value2, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_amount not between", value1, value2, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andBalanceIsNull() {
            addCriterion("balance is null");
            return (Criteria) this;
        }

        public Criteria andBalanceIsNotNull() {
            addCriterion("balance is not null");
            return (Criteria) this;
        }

        public Criteria andBalanceEqualTo(BigDecimal value) {
            addCriterion("balance =", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceNotEqualTo(BigDecimal value) {
            addCriterion("balance <>", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceGreaterThan(BigDecimal value) {
            addCriterion("balance >", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("balance >=", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceLessThan(BigDecimal value) {
            addCriterion("balance <", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("balance <=", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceIn(List<BigDecimal> values) {
            addCriterion("balance in", values, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceNotIn(List<BigDecimal> values) {
            addCriterion("balance not in", values, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("balance between", value1, value2, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("balance not between", value1, value2, "balance");
            return (Criteria) this;
        }

        public Criteria andMinAmountIsNull() {
            addCriterion("min_amount is null");
            return (Criteria) this;
        }

        public Criteria andMinAmountIsNotNull() {
            addCriterion("min_amount is not null");
            return (Criteria) this;
        }

        public Criteria andMinAmountEqualTo(Long value) {
            addCriterion("min_amount =", value, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountNotEqualTo(Long value) {
            addCriterion("min_amount <>", value, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountGreaterThan(Long value) {
            addCriterion("min_amount >", value, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("min_amount >=", value, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountLessThan(Long value) {
            addCriterion("min_amount <", value, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountLessThanOrEqualTo(Long value) {
            addCriterion("min_amount <=", value, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountIn(List<Long> values) {
            addCriterion("min_amount in", values, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountNotIn(List<Long> values) {
            addCriterion("min_amount not in", values, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountBetween(Long value1, Long value2) {
            addCriterion("min_amount between", value1, value2, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMinAmountNotBetween(Long value1, Long value2) {
            addCriterion("min_amount not between", value1, value2, "minAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountIsNull() {
            addCriterion("max_amount is null");
            return (Criteria) this;
        }

        public Criteria andMaxAmountIsNotNull() {
            addCriterion("max_amount is not null");
            return (Criteria) this;
        }

        public Criteria andMaxAmountEqualTo(Long value) {
            addCriterion("max_amount =", value, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountNotEqualTo(Long value) {
            addCriterion("max_amount <>", value, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountGreaterThan(Long value) {
            addCriterion("max_amount >", value, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("max_amount >=", value, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountLessThan(Long value) {
            addCriterion("max_amount <", value, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountLessThanOrEqualTo(Long value) {
            addCriterion("max_amount <=", value, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountIn(List<Long> values) {
            addCriterion("max_amount in", values, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountNotIn(List<Long> values) {
            addCriterion("max_amount not in", values, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountBetween(Long value1, Long value2) {
            addCriterion("max_amount between", value1, value2, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMaxAmountNotBetween(Long value1, Long value2) {
            addCriterion("max_amount not between", value1, value2, "maxAmount");
            return (Criteria) this;
        }

        public Criteria andMinRedeemIsNull() {
            addCriterion("min_redeem is null");
            return (Criteria) this;
        }

        public Criteria andMinRedeemIsNotNull() {
            addCriterion("min_redeem is not null");
            return (Criteria) this;
        }

        public Criteria andMinRedeemEqualTo(Long value) {
            addCriterion("min_redeem =", value, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemNotEqualTo(Long value) {
            addCriterion("min_redeem <>", value, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemGreaterThan(Long value) {
            addCriterion("min_redeem >", value, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemGreaterThanOrEqualTo(Long value) {
            addCriterion("min_redeem >=", value, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemLessThan(Long value) {
            addCriterion("min_redeem <", value, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemLessThanOrEqualTo(Long value) {
            addCriterion("min_redeem <=", value, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemIn(List<Long> values) {
            addCriterion("min_redeem in", values, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemNotIn(List<Long> values) {
            addCriterion("min_redeem not in", values, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemBetween(Long value1, Long value2) {
            addCriterion("min_redeem between", value1, value2, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMinRedeemNotBetween(Long value1, Long value2) {
            addCriterion("min_redeem not between", value1, value2, "minRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemIsNull() {
            addCriterion("max_redeem is null");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemIsNotNull() {
            addCriterion("max_redeem is not null");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemEqualTo(Long value) {
            addCriterion("max_redeem =", value, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemNotEqualTo(Long value) {
            addCriterion("max_redeem <>", value, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemGreaterThan(Long value) {
            addCriterion("max_redeem >", value, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemGreaterThanOrEqualTo(Long value) {
            addCriterion("max_redeem >=", value, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemLessThan(Long value) {
            addCriterion("max_redeem <", value, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemLessThanOrEqualTo(Long value) {
            addCriterion("max_redeem <=", value, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemIn(List<Long> values) {
            addCriterion("max_redeem in", values, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemNotIn(List<Long> values) {
            addCriterion("max_redeem not in", values, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemBetween(Long value1, Long value2) {
            addCriterion("max_redeem between", value1, value2, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxRedeemNotBetween(Long value1, Long value2) {
            addCriterion("max_redeem not between", value1, value2, "maxRedeem");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyIsNull() {
            addCriterion("max_monthly is null");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyIsNotNull() {
            addCriterion("max_monthly is not null");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyEqualTo(Long value) {
            addCriterion("max_monthly =", value, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyNotEqualTo(Long value) {
            addCriterion("max_monthly <>", value, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyGreaterThan(Long value) {
            addCriterion("max_monthly >", value, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyGreaterThanOrEqualTo(Long value) {
            addCriterion("max_monthly >=", value, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyLessThan(Long value) {
            addCriterion("max_monthly <", value, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyLessThanOrEqualTo(Long value) {
            addCriterion("max_monthly <=", value, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyIn(List<Long> values) {
            addCriterion("max_monthly in", values, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyNotIn(List<Long> values) {
            addCriterion("max_monthly not in", values, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyBetween(Long value1, Long value2) {
            addCriterion("max_monthly between", value1, value2, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxMonthlyNotBetween(Long value1, Long value2) {
            addCriterion("max_monthly not between", value1, value2, "maxMonthly");
            return (Criteria) this;
        }

        public Criteria andMaxDailyIsNull() {
            addCriterion("max_daily is null");
            return (Criteria) this;
        }

        public Criteria andMaxDailyIsNotNull() {
            addCriterion("max_daily is not null");
            return (Criteria) this;
        }

        public Criteria andMaxDailyEqualTo(Long value) {
            addCriterion("max_daily =", value, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyNotEqualTo(Long value) {
            addCriterion("max_daily <>", value, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyGreaterThan(Long value) {
            addCriterion("max_daily >", value, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyGreaterThanOrEqualTo(Long value) {
            addCriterion("max_daily >=", value, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyLessThan(Long value) {
            addCriterion("max_daily <", value, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyLessThanOrEqualTo(Long value) {
            addCriterion("max_daily <=", value, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyIn(List<Long> values) {
            addCriterion("max_daily in", values, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyNotIn(List<Long> values) {
            addCriterion("max_daily not in", values, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyBetween(Long value1, Long value2) {
            addCriterion("max_daily between", value1, value2, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxDailyNotBetween(Long value1, Long value2) {
            addCriterion("max_daily not between", value1, value2, "maxDaily");
            return (Criteria) this;
        }

        public Criteria andMaxNumberIsNull() {
            addCriterion("max_number is null");
            return (Criteria) this;
        }

        public Criteria andMaxNumberIsNotNull() {
            addCriterion("max_number is not null");
            return (Criteria) this;
        }

        public Criteria andMaxNumberEqualTo(Integer value) {
            addCriterion("max_number =", value, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberNotEqualTo(Integer value) {
            addCriterion("max_number <>", value, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberGreaterThan(Integer value) {
            addCriterion("max_number >", value, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("max_number >=", value, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberLessThan(Integer value) {
            addCriterion("max_number <", value, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberLessThanOrEqualTo(Integer value) {
            addCriterion("max_number <=", value, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberIn(List<Integer> values) {
            addCriterion("max_number in", values, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberNotIn(List<Integer> values) {
            addCriterion("max_number not in", values, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberBetween(Integer value1, Integer value2) {
            addCriterion("max_number between", value1, value2, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andMaxNumberNotBetween(Integer value1, Integer value2) {
            addCriterion("max_number not between", value1, value2, "maxNumber");
            return (Criteria) this;
        }

        public Criteria andStepAmountIsNull() {
            addCriterion("step_amount is null");
            return (Criteria) this;
        }

        public Criteria andStepAmountIsNotNull() {
            addCriterion("step_amount is not null");
            return (Criteria) this;
        }

        public Criteria andStepAmountEqualTo(Long value) {
            addCriterion("step_amount =", value, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountNotEqualTo(Long value) {
            addCriterion("step_amount <>", value, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountGreaterThan(Long value) {
            addCriterion("step_amount >", value, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountGreaterThanOrEqualTo(Long value) {
            addCriterion("step_amount >=", value, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountLessThan(Long value) {
            addCriterion("step_amount <", value, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountLessThanOrEqualTo(Long value) {
            addCriterion("step_amount <=", value, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountIn(List<Long> values) {
            addCriterion("step_amount in", values, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountNotIn(List<Long> values) {
            addCriterion("step_amount not in", values, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountBetween(Long value1, Long value2) {
            addCriterion("step_amount between", value1, value2, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andStepAmountNotBetween(Long value1, Long value2) {
            addCriterion("step_amount not between", value1, value2, "stepAmount");
            return (Criteria) this;
        }

        public Criteria andRateIsNull() {
            addCriterion("rate is null");
            return (Criteria) this;
        }

        public Criteria andRateIsNotNull() {
            addCriterion("rate is not null");
            return (Criteria) this;
        }

        public Criteria andRateEqualTo(BigDecimal value) {
            addCriterion("rate =", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotEqualTo(BigDecimal value) {
            addCriterion("rate <>", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThan(BigDecimal value) {
            addCriterion("rate >", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("rate >=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThan(BigDecimal value) {
            addCriterion("rate <", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("rate <=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateIn(List<BigDecimal> values) {
            addCriterion("rate in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotIn(List<BigDecimal> values) {
            addCriterion("rate not in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rate between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rate not between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andAddRateIsNull() {
            addCriterion("add_rate is null");
            return (Criteria) this;
        }

        public Criteria andAddRateIsNotNull() {
            addCriterion("add_rate is not null");
            return (Criteria) this;
        }

        public Criteria andAddRateEqualTo(BigDecimal value) {
            addCriterion("add_rate =", value, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateNotEqualTo(BigDecimal value) {
            addCriterion("add_rate <>", value, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateGreaterThan(BigDecimal value) {
            addCriterion("add_rate >", value, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("add_rate >=", value, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateLessThan(BigDecimal value) {
            addCriterion("add_rate <", value, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("add_rate <=", value, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateIn(List<BigDecimal> values) {
            addCriterion("add_rate in", values, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateNotIn(List<BigDecimal> values) {
            addCriterion("add_rate not in", values, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("add_rate between", value1, value2, "addRate");
            return (Criteria) this;
        }

        public Criteria andAddRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("add_rate not between", value1, value2, "addRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateIsNull() {
            addCriterion("compound_rate is null");
            return (Criteria) this;
        }

        public Criteria andCompoundRateIsNotNull() {
            addCriterion("compound_rate is not null");
            return (Criteria) this;
        }

        public Criteria andCompoundRateEqualTo(BigDecimal value) {
            addCriterion("compound_rate =", value, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateNotEqualTo(BigDecimal value) {
            addCriterion("compound_rate <>", value, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateGreaterThan(BigDecimal value) {
            addCriterion("compound_rate >", value, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("compound_rate >=", value, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateLessThan(BigDecimal value) {
            addCriterion("compound_rate <", value, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("compound_rate <=", value, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateIn(List<BigDecimal> values) {
            addCriterion("compound_rate in", values, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateNotIn(List<BigDecimal> values) {
            addCriterion("compound_rate not in", values, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("compound_rate between", value1, value2, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andCompoundRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("compound_rate not between", value1, value2, "compoundRate");
            return (Criteria) this;
        }

        public Criteria andProductTimeIsNull() {
            addCriterion("product_time is null");
            return (Criteria) this;
        }

        public Criteria andProductTimeIsNotNull() {
            addCriterion("product_time is not null");
            return (Criteria) this;
        }

        public Criteria andProductTimeEqualTo(Integer value) {
            addCriterion("product_time =", value, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeNotEqualTo(Integer value) {
            addCriterion("product_time <>", value, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeGreaterThan(Integer value) {
            addCriterion("product_time >", value, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_time >=", value, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeLessThan(Integer value) {
            addCriterion("product_time <", value, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeLessThanOrEqualTo(Integer value) {
            addCriterion("product_time <=", value, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeIn(List<Integer> values) {
            addCriterion("product_time in", values, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeNotIn(List<Integer> values) {
            addCriterion("product_time not in", values, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeBetween(Integer value1, Integer value2) {
            addCriterion("product_time between", value1, value2, "productTime");
            return (Criteria) this;
        }

        public Criteria andProductTimeNotBetween(Integer value1, Integer value2) {
            addCriterion("product_time not between", value1, value2, "productTime");
            return (Criteria) this;
        }

        public Criteria andTermIsNull() {
            addCriterion("term is null");
            return (Criteria) this;
        }

        public Criteria andTermIsNotNull() {
            addCriterion("term is not null");
            return (Criteria) this;
        }

        public Criteria andTermEqualTo(Integer value) {
            addCriterion("term =", value, "term");
            return (Criteria) this;
        }

        public Criteria andTermNotEqualTo(Integer value) {
            addCriterion("term <>", value, "term");
            return (Criteria) this;
        }

        public Criteria andTermGreaterThan(Integer value) {
            addCriterion("term >", value, "term");
            return (Criteria) this;
        }

        public Criteria andTermGreaterThanOrEqualTo(Integer value) {
            addCriterion("term >=", value, "term");
            return (Criteria) this;
        }

        public Criteria andTermLessThan(Integer value) {
            addCriterion("term <", value, "term");
            return (Criteria) this;
        }

        public Criteria andTermLessThanOrEqualTo(Integer value) {
            addCriterion("term <=", value, "term");
            return (Criteria) this;
        }

        public Criteria andTermIn(List<Integer> values) {
            addCriterion("term in", values, "term");
            return (Criteria) this;
        }

        public Criteria andTermNotIn(List<Integer> values) {
            addCriterion("term not in", values, "term");
            return (Criteria) this;
        }

        public Criteria andTermBetween(Integer value1, Integer value2) {
            addCriterion("term between", value1, value2, "term");
            return (Criteria) this;
        }

        public Criteria andTermNotBetween(Integer value1, Integer value2) {
            addCriterion("term not between", value1, value2, "term");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlIsNull() {
            addCriterion("agreement_url is null");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlIsNotNull() {
            addCriterion("agreement_url is not null");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlEqualTo(String value) {
            addCriterion("agreement_url =", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlNotEqualTo(String value) {
            addCriterion("agreement_url <>", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlGreaterThan(String value) {
            addCriterion("agreement_url >", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlGreaterThanOrEqualTo(String value) {
            addCriterion("agreement_url >=", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlLessThan(String value) {
            addCriterion("agreement_url <", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlLessThanOrEqualTo(String value) {
            addCriterion("agreement_url <=", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlLike(String value) {
            addCriterion("agreement_url like", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlNotLike(String value) {
            addCriterion("agreement_url not like", value, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlIn(List<String> values) {
            addCriterion("agreement_url in", values, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlNotIn(List<String> values) {
            addCriterion("agreement_url not in", values, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlBetween(String value1, String value2) {
            addCriterion("agreement_url between", value1, value2, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andAgreementUrlNotBetween(String value1, String value2) {
            addCriterion("agreement_url not between", value1, value2, "agreementUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlIsNull() {
            addCriterion("risk_letter_url is null");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlIsNotNull() {
            addCriterion("risk_letter_url is not null");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlEqualTo(String value) {
            addCriterion("risk_letter_url =", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlNotEqualTo(String value) {
            addCriterion("risk_letter_url <>", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlGreaterThan(String value) {
            addCriterion("risk_letter_url >", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlGreaterThanOrEqualTo(String value) {
            addCriterion("risk_letter_url >=", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlLessThan(String value) {
            addCriterion("risk_letter_url <", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlLessThanOrEqualTo(String value) {
            addCriterion("risk_letter_url <=", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlLike(String value) {
            addCriterion("risk_letter_url like", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlNotLike(String value) {
            addCriterion("risk_letter_url not like", value, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlIn(List<String> values) {
            addCriterion("risk_letter_url in", values, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlNotIn(List<String> values) {
            addCriterion("risk_letter_url not in", values, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlBetween(String value1, String value2) {
            addCriterion("risk_letter_url between", value1, value2, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLetterUrlNotBetween(String value1, String value2) {
            addCriterion("risk_letter_url not between", value1, value2, "riskLetterUrl");
            return (Criteria) this;
        }

        public Criteria andRiskLevelIsNull() {
            addCriterion("risk_level is null");
            return (Criteria) this;
        }

        public Criteria andRiskLevelIsNotNull() {
            addCriterion("risk_level is not null");
            return (Criteria) this;
        }

        public Criteria andRiskLevelEqualTo(Integer value) {
            addCriterion("risk_level =", value, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelNotEqualTo(Integer value) {
            addCriterion("risk_level <>", value, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelGreaterThan(Integer value) {
            addCriterion("risk_level >", value, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelGreaterThanOrEqualTo(Integer value) {
            addCriterion("risk_level >=", value, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelLessThan(Integer value) {
            addCriterion("risk_level <", value, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelLessThanOrEqualTo(Integer value) {
            addCriterion("risk_level <=", value, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelIn(List<Integer> values) {
            addCriterion("risk_level in", values, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelNotIn(List<Integer> values) {
            addCriterion("risk_level not in", values, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelBetween(Integer value1, Integer value2) {
            addCriterion("risk_level between", value1, value2, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andRiskLevelNotBetween(Integer value1, Integer value2) {
            addCriterion("risk_level not between", value1, value2, "riskLevel");
            return (Criteria) this;
        }

        public Criteria andStautsIsNull() {
            addCriterion("stauts is null");
            return (Criteria) this;
        }

        public Criteria andStautsIsNotNull() {
            addCriterion("stauts is not null");
            return (Criteria) this;
        }

        public Criteria andStautsEqualTo(Integer value) {
            addCriterion("stauts =", value, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsNotEqualTo(Integer value) {
            addCriterion("stauts <>", value, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsGreaterThan(Integer value) {
            addCriterion("stauts >", value, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsGreaterThanOrEqualTo(Integer value) {
            addCriterion("stauts >=", value, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsLessThan(Integer value) {
            addCriterion("stauts <", value, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsLessThanOrEqualTo(Integer value) {
            addCriterion("stauts <=", value, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsIn(List<Integer> values) {
            addCriterion("stauts in", values, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsNotIn(List<Integer> values) {
            addCriterion("stauts not in", values, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsBetween(Integer value1, Integer value2) {
            addCriterion("stauts between", value1, value2, "stauts");
            return (Criteria) this;
        }

        public Criteria andStautsNotBetween(Integer value1, Integer value2) {
            addCriterion("stauts not between", value1, value2, "stauts");
            return (Criteria) this;
        }

        public Criteria andIsCouponIsNull() {
            addCriterion("is_coupon is null");
            return (Criteria) this;
        }

        public Criteria andIsCouponIsNotNull() {
            addCriterion("is_coupon is not null");
            return (Criteria) this;
        }

        public Criteria andIsCouponEqualTo(Integer value) {
            addCriterion("is_coupon =", value, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponNotEqualTo(Integer value) {
            addCriterion("is_coupon <>", value, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponGreaterThan(Integer value) {
            addCriterion("is_coupon >", value, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_coupon >=", value, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponLessThan(Integer value) {
            addCriterion("is_coupon <", value, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponLessThanOrEqualTo(Integer value) {
            addCriterion("is_coupon <=", value, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponIn(List<Integer> values) {
            addCriterion("is_coupon in", values, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponNotIn(List<Integer> values) {
            addCriterion("is_coupon not in", values, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponBetween(Integer value1, Integer value2) {
            addCriterion("is_coupon between", value1, value2, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andIsCouponNotBetween(Integer value1, Integer value2) {
            addCriterion("is_coupon not between", value1, value2, "isCoupon");
            return (Criteria) this;
        }

        public Criteria andLockPeriodIsNull() {
            addCriterion("lock_period is null");
            return (Criteria) this;
        }

        public Criteria andLockPeriodIsNotNull() {
            addCriterion("lock_period is not null");
            return (Criteria) this;
        }

        public Criteria andLockPeriodEqualTo(Integer value) {
            addCriterion("lock_period =", value, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodNotEqualTo(Integer value) {
            addCriterion("lock_period <>", value, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodGreaterThan(Integer value) {
            addCriterion("lock_period >", value, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodGreaterThanOrEqualTo(Integer value) {
            addCriterion("lock_period >=", value, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodLessThan(Integer value) {
            addCriterion("lock_period <", value, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodLessThanOrEqualTo(Integer value) {
            addCriterion("lock_period <=", value, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodIn(List<Integer> values) {
            addCriterion("lock_period in", values, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodNotIn(List<Integer> values) {
            addCriterion("lock_period not in", values, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodBetween(Integer value1, Integer value2) {
            addCriterion("lock_period between", value1, value2, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andLockPeriodNotBetween(Integer value1, Integer value2) {
            addCriterion("lock_period not between", value1, value2, "lockPeriod");
            return (Criteria) this;
        }

        public Criteria andIsPacketIsNull() {
            addCriterion("is_packet is null");
            return (Criteria) this;
        }

        public Criteria andIsPacketIsNotNull() {
            addCriterion("is_packet is not null");
            return (Criteria) this;
        }

        public Criteria andIsPacketEqualTo(Integer value) {
            addCriterion("is_packet =", value, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketNotEqualTo(Integer value) {
            addCriterion("is_packet <>", value, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketGreaterThan(Integer value) {
            addCriterion("is_packet >", value, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_packet >=", value, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketLessThan(Integer value) {
            addCriterion("is_packet <", value, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketLessThanOrEqualTo(Integer value) {
            addCriterion("is_packet <=", value, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketIn(List<Integer> values) {
            addCriterion("is_packet in", values, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketNotIn(List<Integer> values) {
            addCriterion("is_packet not in", values, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketBetween(Integer value1, Integer value2) {
            addCriterion("is_packet between", value1, value2, "isPacket");
            return (Criteria) this;
        }

        public Criteria andIsPacketNotBetween(Integer value1, Integer value2) {
            addCriterion("is_packet not between", value1, value2, "isPacket");
            return (Criteria) this;
        }

        public Criteria andInterestTypeIsNull() {
            addCriterion("interest_type is null");
            return (Criteria) this;
        }

        public Criteria andInterestTypeIsNotNull() {
            addCriterion("interest_type is not null");
            return (Criteria) this;
        }

        public Criteria andInterestTypeEqualTo(Integer value) {
            addCriterion("interest_type =", value, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeNotEqualTo(Integer value) {
            addCriterion("interest_type <>", value, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeGreaterThan(Integer value) {
            addCriterion("interest_type >", value, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("interest_type >=", value, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeLessThan(Integer value) {
            addCriterion("interest_type <", value, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeLessThanOrEqualTo(Integer value) {
            addCriterion("interest_type <=", value, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeIn(List<Integer> values) {
            addCriterion("interest_type in", values, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeNotIn(List<Integer> values) {
            addCriterion("interest_type not in", values, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeBetween(Integer value1, Integer value2) {
            addCriterion("interest_type between", value1, value2, "interestType");
            return (Criteria) this;
        }

        public Criteria andInterestTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("interest_type not between", value1, value2, "interestType");
            return (Criteria) this;
        }

        public Criteria andRemark2IsNull() {
            addCriterion("remark2 is null");
            return (Criteria) this;
        }

        public Criteria andRemark2IsNotNull() {
            addCriterion("remark2 is not null");
            return (Criteria) this;
        }

        public Criteria andRemark2EqualTo(String value) {
            addCriterion("remark2 =", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2NotEqualTo(String value) {
            addCriterion("remark2 <>", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2GreaterThan(String value) {
            addCriterion("remark2 >", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2GreaterThanOrEqualTo(String value) {
            addCriterion("remark2 >=", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2LessThan(String value) {
            addCriterion("remark2 <", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2LessThanOrEqualTo(String value) {
            addCriterion("remark2 <=", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2Like(String value) {
            addCriterion("remark2 like", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2NotLike(String value) {
            addCriterion("remark2 not like", value, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2In(List<String> values) {
            addCriterion("remark2 in", values, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2NotIn(List<String> values) {
            addCriterion("remark2 not in", values, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2Between(String value1, String value2) {
            addCriterion("remark2 between", value1, value2, "remark2");
            return (Criteria) this;
        }

        public Criteria andRemark2NotBetween(String value1, String value2) {
            addCriterion("remark2 not between", value1, value2, "remark2");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}